home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Science / RLaB / examples / house_qr.r < prev    next >
Text File  |  1994-04-25  |  554b  |  28 lines

  1. // house_qr.r
  2. // Given A, with M >= N, the following function finds Householder
  3. // matrices H1,...Hn, such that if Q = H1*...Hn, then Q'*A = R is
  4. // upper triangular.
  5.  
  6. // House.qr returns a MxN matrix, with the upper triangular part 
  7. // containing [R]
  8.  
  9. house_qr = function ( A )
  10. {
  11.   local (a, j, n, m, v);
  12.  
  13.   a = A;
  14.   m = size(A)[1]; n = size(A)[2];
  15.   v = zeros(m,1);
  16.  
  17.   for(j in 1:n)
  18.   {
  19.     v[j:m] = house.v( a[j:m;j] );
  20.     a[j:m;j:n] = house.row( a[j:m;j:n], v[j:m] );
  21.     if (j < m) 
  22.     {
  23.       a[ (j+1):m;j ] = v[(j+1):m];
  24.     }
  25.   }
  26.   return a
  27. };
  28.